package testjeu;

import org.newdawn.slick.AngelCodeFont;
import org.newdawn.slick.Color;
import org.newdawn.slick.Graphics;
import org.newdawn.slick.SlickException;


/**
 * Affiche un message défilant ( centré horizontalement avec une ombre )
 * @author YoTsumi
 * @see    Messages
 */
public class Message  {
    
        private String message;
        private float x;
        private float y;
        private float a;
         
        private AngelCodeFont police;
        
        /**
         * Cré un nouveau message
         * 
         * @param mess      Texte du message
         * @param yy        Coordonnée verticale d'origine
         * @param decG      Décalage Gauche ( pr gérer le centrage du texte )
         * @param duree     Durée de vie
         * @param font      La police dans laquelle écrire ce message
         * @throws org.newdawn.slick.SlickException
         */
        public Message(String mess,  float yy, int decG, int duree, AngelCodeFont font) throws SlickException {
                
                this.police=font;   
                this.a = duree;
                this.x = 400 + decG - (font.getWidth(mess) / 2);
                this.y = yy;
                this.message = mess;
                
        }
 
        /**
         * Met à jour la position du message, et vérifie si sa durée de vie est toujours positive
         * @param delta     Temps écoulé depuis la dernière update
         * @return          Vrai si le message est périmé ( = à détruire )
         */
        public boolean update(int delta) {
                y -= delta * 0.05f;
                a -= delta * 0.001f;
                return a<0;
        }
    
        /**
         * Dessine le message à l'écran, en blanc avec une ombre noire d'1px    
         * @param g     Le contexte graphique
         */
        public void dessiner(Graphics g) {
                g.setFont(police);
                g.setColor(Color.black);
                g.drawString(message, (int) x+1, (int) y+1);
                g.setColor(Color.white);
                g.drawString(message, (int) x, (int) y);
                
           
        }
}
